package aceim.protocol.snuk182.vkontakte;
import aceim.api.IProtocol;
import aceim.api.dataentity.Buddy;
import aceim.api.dataentity.BuddyGroup;
import aceim.api.dataentity.ConnectionState;
import aceim.api.dataentity.ItemAction;
import aceim.api.dataentity.Message;
import aceim.api.dataentity.OnlineInfo;
import aceim.api.service.AccountService;
import aceim.api.service.ApiConstants;
import aceim.api.service.ICoreProtocolCallback;
import aceim.protocol.snuk182.vkontakte.internal.VkApiConstants;
import aceim.protocol.snuk182.vkontakte.internal.VkServiceInternal;
import android.content.Context;
import android.os.Bundle;
public class VkService extends AccountService {
private final VkServiceInternal internal = new VkServiceInternal(this);
public VkService(byte serviceId, String protocolUid, ICoreProtocolCallback callback, Context context) {
super(serviceId, protocolUid, callback, context);
}
public void loginResult(Bundle result) {
String error = result.getString(VkConstants.EXTRA_ERROR);
String errorDescription = result.getString(VkConstants.EXTRA_ERROR_DESCRIPTION);
if (error == null && errorDescription == null) {
String code = result.getString(VkConstants.KEY_CODE);
if (code != null) {
internal.loginResult(code);
} else {
String accessToken = result.getString(VkConstants.KEY_TOKEN);
long expirationTime = result.getLong(VkConstants.KEY_EXP_TIME_SECONDS);
long internalUserId = result.getLong(VkConstants.KEY_USER_ID);
boolean unexpirable = result.getBoolean(VkConstants.KEY_UNEXPIRABLE_TOKEN);
internal.loginResult(accessToken, expirationTime, unexpirable, internalUserId);
}
} else {
}
}
@Override
protected ConnectionState getCurrentState() {
return internal.getConnectionState();
}
@Override
public IProtocol getProtocol() {
return protocol;
}
@Override
protected void keepaliveRequest() {}
@Override
protected void timeoutReconnect() {}
private final IProtocol protocol = new IProtocol() {
@Override
public void uploadAccountPhoto(String arg0) {}
@Override
public void setFeature(String featureId, OnlineInfo arg1) {
if (featureId.equals(VkApiConstants.FEATURE_GROUPCHATS)) {
internal.requestAvailableGroupchats();
} else if (featureId.equals(ApiConstants.FEATURE_XSTATUS)) {
internal.setStatus(arg1);
}
}
@Override
public void sendTypingNotification(String arg0) {
internal.typingNotification(arg0);
}
@Override
public long sendMessage(Message arg0) {
return internal.sendMessage(arg0);
}
@Override
public void requestIcon(String arg0) {
internal.requestIcon(arg0);
}
@Override
public void requestFullInfo(String arg0, boolean arg1) {}
@Override
public void removeAccountPhoto() {}
@Override
public void messageResponse(Message arg0, boolean arg1) {}
@Override
public void leaveChatRoom(String chatId) {
internal.leaveChat(chatId);
}
@Override
public void joinChatRoom(String chatId, boolean loadIcons) {
internal.joinChat(chatId, loadIcons);
}
@Override
public void disconnect() {
internal.logout();
}
@Override
public void connect(OnlineInfo arg0) {
internal.login(arg0);
}
@Override
public void cancelFileFransfer(long arg0) {}
@Override
public void buddyGroupAction(ItemAction arg0, BuddyGroup arg1) {}
@Override
public void buddyAction(ItemAction arg0, Buddy arg1) {}
};
}